package com.tan.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tan.common.domain.user.SysUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tan.common.dto.user.UserCreateDto;
import com.tan.common.dto.user.UserUpdateDto;
import com.tan.common.query.user.UserQuery;
import com.tan.common.vo.user.UserPages;

import java.util.List;

/**
 * <p>
 * 用户信息表 服务类
 * </p>
 *
 * @author Tan
 * @since 2025-01-27
 */
public interface ISysUserService extends IService<SysUser> {

    /***
     * @author Tan-Bowen
     * @description 用户分页
     * @date 2025/2/5 9:12
     * @param [query]
     */
    IPage<UserPages> userPages(UserQuery query);

    /**
     * 用户创建
     *
     * @param dto 用户实体
     */
    void createUser(UserCreateDto dto);

    /**
     * @param [updateDto]
     * @author Tan-Bowen
     * @description 修改用户信息
     * @date 2025/2/7 17:26
     */
    void updateUser(UserUpdateDto updateDto);

    /**
     * @param [userId]
     * @author Tan-Bowen
     * @description 用户删除
     * @date 2025/2/7 17:26
     */
    void delUser(Long userId);

    /**
     * @param []
     * @author Tan-Bowen
     * @description 用户集合
     * @date 2025/2/7 17:26
     */
    List<SysUser> getUsers();

    /**
     * @param []
     * @author Tan-Bowen
     * @description 用户集合
     * @date 2025/2/7 17:26
     */
    List<UserPages> getUsersVo();
}
